import Vue from 'vue'
import axios from 'axios'

// 导入 Nprogress 对应的JS和CSS
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'


axios.defaults.baseURL = `http://localhost:8080`
// axios.defaults.baseURL = `http://127.0.0.1:8802/api/private/v1`

// 添加 请求头 和 进度条 NProgress.start()
//设置axios的请求拦截器
axios.interceptors.request.use(config => {
    // 添加 进度条
    NProgress.start()

    // 拦截到请求后，将token加到请求头中
    // const token = localStorage.getItem('token')
    // console.log('拦截请求，读取到token：' + token)
    // if (token) {
    //   config.headers.Authorization = token
    // }
    // // 添加请求头
    // config.headers.Authorization = window.sessionStorage.getItem('token')

    //拦截到请求后，将token加到请求头中
    let accessToken = localStorage.getItem("access-token");
    let refreshToken = localStorage.getItem("refresh-token");
    console.log("拦截请求，读取到token：" + accessToken);
    if (accessToken && refreshToken) {
        config.headers.Authorization = accessToken;
        config.headers.RefreshToken = refreshToken;
    }
    return config;
})
//使用axios拦截器获得刷新的token
axios.interceptors.response.use(config => {
    //token过期就保存刷新后的token
    if (config.headers.tokens) {
        let tokens = JSON.parse(config.headers.tokens);
        console.log(tokens.accessToken)
        console.log(tokens.refreshToken)
        if (tokens.accessToken && tokens.refreshToken) {
            localStorage.setItem("access-token", tokens.accessToken)
            localStorage.setItem("refresh-token", tokens.refreshToken)
        }
    }
    return config
})

axios.interceptors.response.use(config => {
    // 隐藏 进度条
    NProgress.done()
    return config
})

Vue.prototype.$axios = axios
